import axios from 'axios'

// 创建axios实例
const service = axios.create({
  baseURL: '/api',
  timeout: 20000, // 增加超时时间
  headers: {
    'Content-Type': 'application/json'
  }
})

// 请求拦截器
service.interceptors.request.use(
  config => {
    console.log('请求配置:', {
      url: config.url,
      method: config.method,
      params: config.params,
      data: config.data
    })
    // 添加token认证信息
    const token = localStorage.getItem('token') || sessionStorage.getItem('token')
    if (token) {
      config.headers.Authorization = `Bearer ${token}`
    }
    return config
  },
  error => {
    console.error('请求错误:', error.message || error)
    return Promise.reject(error)
  }
)

// 响应拦截器
service.interceptors.response.use(
  response => {
    console.log('响应状态:', response.status)
    console.log('响应数据:', response.data)
    // 直接返回响应对象，让调用方可以访问完整的响应信息
    return response
  },
  error => {
    console.error('响应错误:', {
      message: error.message,
      status: error.response?.status,
      statusText: error.response?.statusText,
      data: error.response?.data,
      url: error.config?.url
    })
    return Promise.reject(error)
  }
)

// 角色管理相关API
export const roleApi = {
  // 查询所有角色
  getAllRoles: () => service.get('/roles/list'),

  // 角色信息分页查询
  getRoleList: (params) => service.get('/roles', { params }),

  // 根据ID查询角色
  getRoleDetail: (id) => service.get(`/roles/${id}`),

  // 添加角色
  addRole: (data) => service.post('/roles', data),

  // 修改角色
  updateRole: (data) => service.put('/roles', data),

  // 删除角色
  deleteRole: (id) => service.delete(`/roles/${id}`)
}

// 只导出roleApi对象，避免默认导出导致的混淆
